<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

    <p id='demo'></p>

    <!-- 使用ajax从服务器接收数组的json数据，并解析为javascript对象 -->
    <!-- <script>
        // 新建XMLHttpRequest对象
        var xmlhttp = new XMLHttpRequest();
        // 调用onreadystatechange函数,
        xmlhttp.onreadystatechange = function() {
            // 判断当前状态是否是响应就绪状态
            if(this.readyState == 4 && this.status == 200) {
                // 将后台返回的字符串数据转成javascript对象
                myobj = JSON.parse(this.responseText);
                document.getElementById('demo').innerHTML = myobj[1];
            }
        };
        xmlhttp.open('post',url,true);
        xmlhttp.send();
    </script> -->


    <!-- json不能存储date对象，如果需要存储date对象，需要将其转换为字符串，再将字符串转为date镀锡 -->
    <script>
        // var text = '{"name":"runoob","initDate":"2013-12-14","site":"www.runoob.com"}';
        // // 将date对象转字符串
        // var obj = JSON.parse(text);
        // // 将字符串转date对象
        // obj.initDate = new Date(obj.initDate);
        // document.getElementById('demo').innerHTML = obj.name+"创建日期："+obj.initDate;


        // 调用json.parse的第二个参数reviver
        // var obj = JSON.parse(text,function(key,value){
        //     if(key=='initDate'){
        //         return new Date(value);
        //     }else{
        //         return value;
        //     }
        // });
        // document.getElementById('demo').innerHTML = obj.name +"创建日期"+obj.initDate;


        // json不允许包含函数，但可以将函数作为字符串存储，之后再将字符串转函数
        var text = '{"name":"runoob","alexa":"function(){return 1000;}","site":"www.runoob.com"}';
        // 将函数转字符串
        var obj = JSON.parse(text);
        // 将字符串转函数
        obj.alexa = eval("("+obj.alexa+")");
        document.getElementById('demo').innerHTML = obj.name+"alexa排名："+obj.alexa();
    </script>
</body>
</html>